﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using Data.Abstract;
using System.Data.SQLite;
using System.Data;

namespace Data
{
    public class Visitante : BaseObject<SimpleVisitante>
    {
        #region Propiedades
      
        new public DalVisitante Dal
        {
            get
            {
                if (_Dal == null) _Dal = new DalVisitante();
                return (DalVisitante)_Dal;
            }
        }
        CollectionPersona _Personas;
        public CollectionPersona Personas
        {
            get { return _Personas; }
        }
        
     
        #endregion
        #region Procedimientos
         public Visitante(): base()
        {
            _Dal = new DalVisitante();
        }

         public Visitante(SimpleVisitante Simple, SQLiteConnection conn )
             : base()
         {
             _Dal = new DalVisitante(conn);
             _Simple = Simple;
         }
         public Visitante( SQLiteConnection conn)
             : base()
         {
             _Dal = new DalVisitante(conn);
         }
  
         
        #endregion
        #region Metodos
         public SimpleVisitante Load(string Nombre)
         {
             DataTable dt = ((DataTable)this.Dal.GetByName(Nombre));
             if (dt.Rows.Count > 0)
             {
                 this._Simple = new SimpleVisitante();
                 this._Simple.LoadByDataRow(dt.Rows[0]);
                 return this._Simple;
             }
             else
             {
                 return null;
             }
         }
        
         public CollectionPersona LoadPersonas()
         {
             CollectionPersona cp = new CollectionPersona();
             cp.LoadByVisitante(this.Simple.Id);
             this._Personas = cp;
             return cp;
         }
      
        public override void Insert()
        {
            this.Dal.Insert(this._Simple);
        }
        public override void Update()
        {
            this.Dal.Update(this._Simple);
        }
        public override void Delete()
        {
            throw new NotImplementedException();
        }

        #endregion
       

       
    }
}
